package main

import (
	"fmt"
	"sync"
)

// 阅读： https://www.cnblogs.com/yinbiao/p/15838957.html
func main() {

	var m sync.Map // 适合读多写少的场景
	m.Store("a", 10)
	m.Store("b", 100)

	age, _ := m.Load("a")
	fmt.Println(age.(int))

	m.Range(func(key, value any) bool {
		name := key.(string)
		age := value.(int)
		fmt.Println(name, age)
		return true
	})

	m.Delete("a")
	age, ok := m.Load("a")
	fmt.Println(age, ok)

	m.Store("b", 200)
	m.LoadOrStore("b", 2000) // 如果不存在此键，才存储
	//m.Store("b", 20000)
	age, _ = m.Load("b")
	fmt.Println(age)

}
